/*
 * OrdenDeAparicion.cpp
 *
 *  Created on: 06/11/2013
 *      Author: Miguel
 */

#include "OrdenDeAparicion.h"

OrdenDeAparicion::OrdenDeAparicion(const String& nombre, int numDeDoc):
	IDdoc(numDeDoc), archivo(BLOCK_SIZE)
{
	String num = Utils::toString(numDeDoc);
	path = VOCABULARIO + nombre;
}

OrdenDeAparicion::~OrdenDeAparicion() {}

void OrdenDeAparicion::abrir() {
	if ( !archivo.open(path) )
		archivo.create(path);
	else
		archivo.rewind();
}

BigInt OrdenDeAparicion::agregarYDevolverID(const String& termino) {
	archivo.rewind();
	Termino term;
	BigInt id = 1;
	while( archivo.next(term) ) {
		if ( !termino.compare(term.getValor()) )
			return id;
		id++;
	}
	Termino nuevo(termino);
	archivo.add(nuevo);
	return id;
}

void OrdenDeAparicion::cerrar() {
	archivo.close();
}
